home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / day.c < prev    next >
Text File  |  1985-06-03  |  3KB  |  105 lines

  1.  
  2.  
  3. /* ---------------------------------------------------------------------- */
  4. /*        Program to calculate # of days between two dates                */
  5. /*        This program was tested & compiled on a DeSmet 'C' compiler     */
  6. /*        ver 2.2 -- but should run on any good 'C' compiler              */
  7. /* ---------------------------------------------------------------------- */
  8.  
  9. /* Please note that this program only works from 01-12-1600 A.D. onward   */
  10.  
  11.  
  12.  
  13. struct date                                 /*   structure to hold date   */
  14.   {
  15.    int     month;
  16.    int    day;
  17.    int    year;
  18.   } date_1;
  19.  
  20.  
  21. long int funct1 (y,m)                       /*   part of # of days calc.  */
  22.     int y, m;
  23.     {
  24.      long int result;
  25.      if ( m <= 2 )
  26.        y -= 1;
  27.      result = y;
  28.      return (result);
  29.     }
  30.  
  31. long int funct2 (m)
  32.     int m;
  33.     {
  34.      long int result;
  35.      if ( m <= 2 )
  36.        result = m + 13;
  37.      else
  38.        result = m + 1;
  39.        return(result);
  40.     }
  41.  
  42. /* Function to calculate the number of days in dates */
  43.  
  44. long int day_count (m, d, y)
  45.     int m, d, y;
  46.     {
  47.      long int number;
  48.      number = 1461 *  funct1(y,m) / 4 + 153 * funct2(m) / 5 + d;
  49.  
  50.      return (number);
  51.     }
  52.  
  53. main ()
  54. {
  55.     long int number_of_days1;
  56.     int day_of_week, screw_up = 0;
  57.  
  58.     printf("\n\n*****************************************************************\n");
  59.     printf("THIS PROGRAM WILL COMPUTE THE DAY OF THE WEEK (SUNDAY - SATURDAY)\n");
  60.     printf("\t\tTHAT A GIVEN DATE WILL FALL ON\n");
  61.     printf("*****************************************************************\n\n");
  62.  
  63.     printf ("Enter a date (mm dd yyyy) i.e. 03 12 1985  \n");
  64.     scanf ("%d %d %d", &date_1.month, &date_1.day, &date_1.year);
  65.  
  66.     number_of_days1 = day_count (date_1.month, date_1.day, date_1.year);
  67.  
  68.     printf ("\nThe date is:  " );
  69.  
  70.     day_of_week = (number_of_days1 - 621049) % 7;
  71.  
  72.     switch (day_of_week)
  73.       {
  74.         case 0 :
  75.             printf ("Sunday,");
  76.             break;
  77.         case 1 :
  78.             printf ("Monday,");
  79.             break;
  80.         case 2 :
  81.             printf ("Tuesday,");
  82.             break;
  83.         case 3 :
  84.             printf ("Wednesay,");
  85.             break;
  86.         case 4 :
  87.             printf ("Thursday,");
  88.             break;
  89.         case 5 :
  90.             printf ("Friday,");
  91.             break;
  92.         case 6 :
  93.             printf ("Saturday,");
  94.             break;
  95.         default:
  96.             printf ("Something is screwed up -- Maybee you entered\n");
  97.             printf ("a date earlier than 01 12 1600\n\n");
  98.             screw_up = 1;
  99.       }
  100.       if ( !screw_up )
  101.         printf (" %02d/%02d/%02d\n", date_1.month, date_1.day, date_1.year);
  102. }
  103. τ%02d/%02d\n", date_1.month, date_1.day, date_1.year);
  104. }